package com.delio.client.pagos.pagosueldos;

import java.util.Date;

import com.delio.client.idioma.DelioConstants;
import com.delio.client.util.MensajeData;
import com.delio.client.util.Utilities;
import com.extjs.gxt.ui.client.data.BaseFilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.data.BeanModel;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.extjs.gxt.ui.client.data.PagingLoader;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class PagoSueldos {
	private static PagoSueldoServiceAsync ms = GWT.create(PagoSueldoService.class);
	private static DelioConstants k = GWT.create(DelioConstants.class);

	public static ListStore<BeanModel> store;
	public static PagingLoader<PagingLoadResult<ModelData>> loader;

	public static Integer pagosueldo_id;
	public static Integer tipocontrato_id;
	public static Integer estadopago_id=1;
	public static String filter;
	
	public static Integer contrato_id;
	public static Integer periodo;
	public static Date fecha;
	public static Boolean valor=true;
	
	

	public static void getPaginate() {
		RpcProxy<PagingLoadResult<PagoSueldo>> proxy = new RpcProxy<PagingLoadResult<PagoSueldo>>() {

			@Override
			protected void load(Object loadConfig, 	AsyncCallback<PagingLoadResult<PagoSueldo>> callback) {
				ms.paginatePagoSueldo((FilterPagingLoadConfig) loadConfig, filter, tipocontrato_id,estadopago_id,fecha,valor,callback);
			}
		};

		loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy,
				new BeanModelReader()) {

			protected Object newLoadConfig() {
				BasePagingLoadConfig config = new BaseFilterPagingLoadConfig();
				return config;
			}

		};

	
		store = new ListStore<BeanModel>(loader);

	}
	
	public static void Save(PagoSueldo ps) {
		pagosueldo_id = ps.getId();
		ps.setContrato_id(contrato_id);
		ps.setPeriodo(periodo);
	
		ms.save(ps, new AsyncCallback<MensajeData>() {

			@Override
			public void onFailure(Throwable caught) {
				MessageBox.alert(k.sistemaDelio(), k.errorConexion(), null);
			}

			@Override
			public void onSuccess(MensajeData result) {
				
			
				if (result.guardado) {
				
					if (pagosueldo_id != null)
						store.rejectChanges();
					else
						loader.load(0, Utilities.itemsPerPage);


				}
					else
						MessageBox.alert(k.sistemaDelio(),k.empleadoNoGuardado(), null);
				
			}
		});

	}
	
}
